package menus;

import herramientas.BitUtil;
import bitclub.Cliente;
import bitclub.OfertaDiaSemana;
import bitclub.OfertaNumeroArticulo;
import bitclub.Pelicula;
import bitclub.Videojuego;
import java.util.Date;
import java.util.List;

/**
 * @author BIT COMPANY
 */
public class MenuCajero {

    //Usuario que maneja el menú
    private Cliente usuario;

    /**
     * Crea un menú para controlar todas las opciones del videoclub para los empleados.
     * @param Trabajador Se trata de la persona que está operando los menús
     */
    public MenuCajero(Cliente usuario) {
        this.usuario = usuario;
    }

//Menus ////////////////////////////////////////////////////////////////////////
    /**
     * Muestra el menú principal del sistema de menús para trabajadores
     * PRINCIPAL
     */
    public void menuPrincipal() {

        int respuesta = 0;
        do {
            BitUtil.borra();
            respuesta = BitUtil.muestraMenu("MENU PRINCIPAL", new String[]{"Informacion", "Peliculas", "Videojuegos", "Alquilar", "Devolver", "Ver Ofertas"}, "Terminar");
            switch (respuesta) {
                case 1:
                    //Ver datos del usuario y de sus alquileres
                    OpcionesClientes.opcionClientesVer(usuario);
                    OpcionesClientes.opcionClientesVerAlquileres(usuario);
                    break;
                case 2:
                    Pelicula p = OpcionesPeliculas.seleccionarPelicula(false);
                    if (p != null) {
                        OpcionesPeliculas.opcionPeliculasVer(p);
                    }
                    break;
                case 3:
                    Videojuego v = OpcionesVideojuegos.seleccionarVideojuego(false);
                    if (v != null) {
                        OpcionesVideojuegos.opcionVideojuegosVer(v);
                    }
                    break;
                case 4:
                    OpcionesAlquiler.opcionAlquilar(usuario);
                    break;
                case 5:
                    OpcionesAlquiler.opcionDevolver(usuario);
                    break;
                case 6:
                    List <OfertaDiaSemana> listODS= OfertaDiaSemana.seleccionarOferta(new Date (), "Actuales");
                    List <OfertaNumeroArticulo> listONA= OfertaNumeroArticulo.seleccionarOferta(new Date (), "Actuales");
                    for (OfertaDiaSemana ods : listODS){
                        System.out.println("\n------------ Ofertas Dia de la Semana ----------------\n");
                        System.out.println(ods.toString());
                    }
                    for (OfertaNumeroArticulo ona : listONA){
                        System.out.println("\n------------ Ofertas por Numero de articulos ----------\n");
                        System.out.println(ona.toString());
                    }
                    BitUtil.esperaEnter();
                    break;
                case 0:
                    boolean salir = BitUtil.dameConfirmacion("Quiere salir? (S/N) ");
                    if (!salir) {
                        respuesta = -1;
                    }
            }
        } while (respuesta != 0);
    }
}
